cssparser: Add gtk_css_parser_resolve_url()
authorBenjamin Otte <otte@redhat.com>
Tue, 9 Apr 2019 00:15:12 +0000 (02:15 +0200)
committerBenjamin Otte <otte@redhat.com>
Fri, 12 Apr 2019 17:34:28 +0000 (19:34 +0200)
Another slight change of semantics and naming for the new parser.

gtk/gtkcssparser.c
gtk/gtkcssparserprivate.h
gtk/gtkcssprovider.c

index 2b05cb0e248d8bdd61d79e5286f64a23b8ec9b70..fa613464a40939a9d240a9a49d019d6ac682a7a4 100644 (file)
@@ -126,16 +126,26 @@ gtk_css_parser_get_base_file (GtkCssParser *parser)
 }
 
 GFile *
-_gtk_css_parser_get_file_for_path (GtkCssParser *parser,
-                                   const char   *path)
+gtk_css_parser_resolve_url (GtkCssParser *parser,
+                            const char   *url)
 {
   GFile *base, *file;
+  char *scheme;
 
   g_return_val_if_fail (parser != NULL, NULL);
-  g_return_val_if_fail (path != NULL, NULL);
+  g_return_val_if_fail (url != NULL, NULL);
+
+  scheme = g_uri_parse_scheme (url);
+  if (scheme != NULL)
+    {
+      file = g_file_new_for_uri (url);
+      g_free (scheme);
+      return file;
+    }
+  g_free (scheme);
 
   base = gtk_css_parser_get_base_file (parser);
-  file = g_file_resolve_relative_path (base, path);
+  file = g_file_resolve_relative_path (base, url);
   g_object_unref (base);
 
   return file;
@@ -1029,7 +1039,6 @@ GFile *
 _gtk_css_parser_read_url (GtkCssParser *parser)
 {
   gchar *path;
-  char *scheme;
   GFile *file;
 
   if (_gtk_css_parser_try (parser, "url", FALSE))
@@ -1050,15 +1059,6 @@ _gtk_css_parser_read_url (GtkCssParser *parser)
           g_free (path);
           return NULL;
         }
-
-      scheme = g_uri_parse_scheme (path);
-      if (scheme != NULL)
-       {
-         file = g_file_new_for_uri (path);
-         g_free (path);
-         g_free (scheme);
-         return file;
-       }
     }
   else
     {
@@ -1070,7 +1070,7 @@ _gtk_css_parser_read_url (GtkCssParser *parser)
         }
     }
 
-  file = _gtk_css_parser_get_file_for_path (parser, path);
+  file = gtk_css_parser_resolve_url (parser, path);
   g_free (path);
 
   return file;
index 0bcba1159c25c960b7ba93d6d77f9fc92e648ece..9dd518d53198ca0380bef67f53eaa30f48538e5e 100644 (file)
@@ -59,8 +59,8 @@ void            _gtk_css_parser_error             (GtkCssParser          *parser
 guint           _gtk_css_parser_get_line          (GtkCssParser          *parser);
 guint           _gtk_css_parser_get_position      (GtkCssParser          *parser);
 GFile *         _gtk_css_parser_get_file          (GtkCssParser          *parser);
-GFile *         _gtk_css_parser_get_file_for_path (GtkCssParser          *parser,
-                                                   const char            *path);
+GFile *         gtk_css_parser_resolve_url        (GtkCssParser          *parser,
+                                                   const char            *url);
 
 gboolean        gtk_css_parser_has_token          (GtkCssParser          *parser,
                                                    GtkCssTokenType        token_type);
index e119e61a3054473777f934657c1a430291645a32..bb77fcdbaa7b5f9b8f73dea94d36b7d6b72d2029 100644 (file)
@@ -784,11 +784,11 @@ parse_import (GtkCssScanner *scanner)
 
   if (gtk_css_parser_has_token (scanner->parser, GTK_CSS_TOKEN_STRING))
     {
-      char *uri;
+      char *url;
 
-      uri = gtk_css_parser_consume_string (scanner->parser);
-      file = _gtk_css_parser_get_file_for_path (scanner->parser, uri);
-      g_free (uri);
+      url = gtk_css_parser_consume_string (scanner->parser);
+      file = gtk_css_parser_resolve_url (scanner->parser, url);
+      g_free (url);
     }
   else
     {